package com.qf.java2201.listener;


import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.qf.java2201.dto.StoreExcelDto;
import com.qf.java2201.pojo.Store;
import com.qf.java2201.service.StoreService;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Component
@Scope("prototype")     // 注意 这里要设置成多例模式
public class WebStoreListener extends AnalysisEventListener<StoreExcelDto> {

    @Autowired
    private StoreService storeService;

    private List<Store> stores = new ArrayList<>();
    @Override
    public void invoke(StoreExcelDto data, AnalysisContext context) {
        // easyexcel 把读取到数据 封装到了 dto中
        System.out.println(data);

        // 创建一个  pojo
        Store store = new Store();
        // 把 dto 数据 封装到  pojo 中
        BeanUtils.copyProperties(data,store);

        // 每读取一行 excel 都会得到 一个 dto  ，把dto转为 pojo 然后放入 集合
        stores.add(store);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        System.out.println(stores);

        // 把集合中的数据 存入到 数据库
        storeService.addStores(stores);
        stores.clear();
    }
}
